package cn.edu.zafu.bigdata.yh;
public class Cube {
    // 定义属性
    private double length;
    private double width;
    private double height;

    // 构造方法
    public Cube(double length, double width, double height) {
        this.length = length;
        this.width = width;
        this.height = height;
    }

    // 获取方法
    public double getLength() {
        return length;
    }

    public double getWidth() {
        return width;
    }

    public double getHeight() {
        return height;
    }

    // 重写equals方法
    @Override
    public boolean equals(Object obj) {
        // 判断是否为同一对象
        if (this == obj) {
            return true;
        }
        // 判断是否为空或类型不同
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        // 类型转换
        Cube cube = (Cube) obj;
        // 判断属性值是否相等
        return Double.compare(cube.length, length) == 0 &&
                Double.compare(cube.width, width) == 0 &&
                Double.compare(cube.height, height) == 0;
    }

    // 为了正确使用equals方法，应该重写hashCode方法
    @Override
    public int hashCode() {
        // 使用一个合适的算法来计算hashCode
        return Double.hashCode(length) + Double.hashCode(width) + Double.hashCode(height);
    }
}
